#pragma once

#include "glare.core.Prerequisites.h"

namespace Glare {

	enum PlatformWindowType
	{
		PWT_Win32,
		PWT_Android,
	};

	class PlatformWindow
	{
	public : class ConstructionParams {};

	public : PlatformWindow(const uint& width, const uint& height);
	public : virtual ~PlatformWindow();

	public : static PlatformWindow* CreateDefaultWindow(const uint& width, const uint& height, ConstructionParams* params);

	public : virtual const PlatformWindowType GetWindowType() const = 0;

	public : const uint& GetWidth() const;
	public : const uint& GetHeight() const;

	public : virtual const uint GetCanvasWidth(const RenderWindow* render_window) const = 0;
	public : virtual const uint GetCanvasHeight(const RenderWindow* render_window) const = 0;

	private : uint _width;
	private : uint _height;
	};

}
